<template>
  <!-- html 结构 -->
  <div class="preson">
    <h2>姓名：{{ name }}</h2>
    <h2>年龄：{{ age }}</h2>
    <h2>地址: {{ address }}</h2>
    <button @click="showTel">查看联系方式</button>
    <button @click="addAge">年龄自增</button>
    <button @click="changeName">修改名字</button>
    <hr />
  </div>
</template>
<script lang="ts">
// JS or TS
export default {
  name: "Person",
  // 组合式 ====> vue3 的写法
  setup() {
    //数据
    //此时定义的变量不是响应式的
    let name = "张三";
    let age = 19;
    let tel = "18888888888";
    let address = "北京海淀区";

    //方法
    // setup中的this是undefined, vue3中已经开始弱化this了
    console.log("vue3中的this是什么：" + this);
    function changeName() {
      name = "李四";
    }
    function addAge() {
      age += 1;
    }
    function showTel() {
      alert(tel);
    }

    // 将数据、方法交出去，模版才能使用
    return { name, age, changeName, addAge, showTel, address };

    // 等价于 return ()=> '哈哈'
    // return function() {
    //   return '哈哈'
    // }
  },
};
</script>
<style>
/* 样式 */
.preson {
  background-color: rgb(120, 145, 46);
  box-shadow: 0 0 10px;
  border-radius: 10px;
  padding: 10px;
}

button {
  /* 上下是0，左右10个像素 */
  margin: 0 5px;
}
</style>
